home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 July / EnigmA AMIGA RUN 20 (1997)(G.R. Edizioni)(IT)[!][issue 1997-07 & 08][EAR-CD IV].iso / lightwave / lwmlist / 95.lightwave-08 / 000111_owner-lightwav…bcom.webcom.com_Wed Aug 9 15:34:30 1995.msg < prev    next >
Internet Message Format  |  1995-09-02  |  9KB

  1. Received: by webcom.webcom.com
  2.     (1.37.109.15/16.2) id AA168767670; Wed, 9 Aug 1995 15:34:30 -0700
  3. Return-Path: <owner-lightwave@webcom.webcom.com>
  4. Received: from nova.unix.portal.com by webcom.webcom.com with ESMTP
  5.     (1.37.109.15/16.2) id AA168107576; Wed, 9 Aug 1995 15:32:56 -0700
  6. Received: from hobo.online.portal.com (hobo.online.portal.com [156.151.5.5]) by nova.unix.portal.com (8.6.11/8.6.5) with ESMTP id PAA04345 for <lightwave@webcom.com>; Wed, 9 Aug 1995 15:23:52 -0700
  7. From: DrGandalf@cup.portal.com
  8. Received: (pccop@localhost) by hobo.online.portal.com (8.6.10/8.6.5) id PAA21918 for lightwave@webcom.com; Wed, 9 Aug 1995 15:23:51 -0700
  9. To: lightwave@webcom.webcom.com
  10. Subject: Re: Character Animation Plugs?
  11. Lines: 135
  12. Date: Wed,  9 Aug 95 15:23:49 PDT
  13. Message-Id: <9508091523.2.21757@cup.portal.com>
  14. X-Origin: The Portal System (TM)
  15. Sender: owner-lightwave@webcom.webcom.com
  16. Precedence: bulk
  17.  
  18. >>     If Stuart Ferguson himself doesn't repost it, I repost his article on
  19. >> NURBs from last April. Very interesting.
  20. >
  21. >Stuart no longer subscribes to the mailing lists, so feel free to post
  22. >away...his "nurbs/splines" message was very interesting and gave me a
  23. >big, BIG headache!  =)
  24.  
  25. You asked for it, you got it.
  26.  
  27.      <ELF> - Eric J Fleischer,MD - Dr Gandalf
  28.      DrGandalf@cup.portal.com
  29.  
  30. ------------------------------------------------------------------------
  31.  
  32. ==========================================================================
  33. Date: Tue, 11 Apr 1995 13:31:01 -0700
  34. From: shf@netcom.com (Stuart Ferguson)
  35. Subject: Re: Revenge of the NURBS
  36.  
  37. re: What are NURBs?
  38.  
  39. NURBs is a cool acronym that everyone knows is a good thing but almost
  40. no one can tell you why.  NURBs are a "check-list" item that every 3D
  41. graphics program has to have for marketing reasons.  NURBs is something
  42. that I'm asked for constantly by users and NewTek marketing alike, but
  43. no one can tell my what they would do if they had them.
  44.  
  45. But seriously, NURBs are a special type of B-spline developed for use
  46. in 3D graphics.  A cubic spline is a piecewise-cubic parametric curve
  47. used to approximate a shape which may have an otherwise more complex
  48. parameteric form.  There are a wide variety of different cubic splines
  49. used in graphics applications, each with different properties and
  50. usages.  The most common by far is the Bezier spline.  These are used in
  51. 2D drawing applications and are usually controled by a set of points
  52. along the curve with "handles" at each point which control the shape
  53. of the curve at that point.  The handles control the slope of the
  54. curve through the point and how flat or round the curve is there.  In
  55. normal cases the interface will constrain the slope and roundness to
  56. be the same on both sides of the control point (C1 continuity), but in
  57. some cases the symmetry can be broken so the slope is the same but the
  58. roundness is different (G1 continuity), or both the slope and roundness
  59. are different (C0 continuity).
  60.  
  61. LightWave uses a special form of cubic spline to interpolate keyframes
  62. while animating.  The positions to interpolate are the keyframe locations,
  63. and the curvature information is computed using the tension, continuity
  64. and bias values at each key.  These are eqivalent to the handles on a
  65. Bezier spline.  If continuity is zero, the curve is C1; if continuity
  66. is non-zero, the curve is C0.  Note that G1, so-called geometric
  67. comtinuity, is only useful for making curves to fit shapes, not for
  68. animation.  LightWave's splines are non-uniform, which is to say that
  69. the number of frames between each key can vary.
  70.  
  71. Modeler's splines use a formula for the curvature at each knot which
  72. makes them smoothly interpolate all their points.  The reason for this
  73. is interface simplicity, so that moving points exactly controls the shape
  74. of the curve.  They are always C1.
  75.  
  76. The nice thing about all these types of splines is that they interpolate
  77. their control points.  That is, the curve actually touches each knot or
  78. key that the user sets down.  The bad thing about these curves is that
  79. they are only C1.  This means that while the tangent to the curve is
  80. continuous across the knot, the rate-of-change of the tangent is not.
  81. You can sometimes see this when animating as a sudden change in
  82. acceleration as an object passes a keyframe.
  83.  
  84. B-splines are the next class of cubic spline which address this issue.
  85. B-splines are C2, which means that the tangent and the rate-of-change
  86. of the tangent are continuous across control points which makes this
  87. type of curve very smooth both when animating and when creating 2D
  88. shapes.  The cost is that B-splines do NOT interpolate their control
  89. points.  The points laid down by the user become more of a rough
  90. guide for the shape of the curve which wends it way smoothly between
  91. but rarely touching any of the points.  There are no handles -- the
  92. shape of the spline is given entirely by the control points.
  93.  
  94. There is one more step to go to get to NURBs.  NURBs are a type of
  95. B-spline and have all the properties that generic B-splines have: C2,
  96. no handles, no passing through control points.  They are also non-
  97. uniform, which is useful for setting keyframes at arbitrary points
  98. in time, but is not a really useful property when modeling.  They
  99. have two additional properties which distinguish them from generic
  100. B-splines and to get to those we have to talk for a second about
  101. homogeneous coordinates.
  102.  
  103. People who work in 3D graphics really like matrices.  They like the
  104. fact that any move in 3D space can be defined by a matrix which can
  105. be multiplied by a vector to get the vector after the move.  To add
  106. a new move you just compose the matrices and the composite move can
  107. then be applied en-masse to a set of points.  Things are also easy
  108. to solve using matrices since it is all linear algebra.  The thing
  109. they don't like is the perspective transfrom which actually uses a
  110. division (gasp!) which takes it out of the realm of things which can
  111. be done with matrices and linear equations (egad!).  So the academics
  112. in the field invented homogeneous coordinates.
  113.  
  114. Normally a position in 3D space can be given by a vector of three
  115. values (X Y Z).  In homogeneous coordinates a position is given by
  116. a vector of four values (X Y Z W), whose three-space position is
  117. given by (X/W Y/W Z/W).  Note that this contains a division, so the
  118. homogeneous coordinate transform (a 4x4 matrix) can encode the
  119. perspective transformation in three-space.  Oh happy day, we're
  120. back to linear algebra to do the whole 3D to 2D transformation,
  121. including, rotation, scaling, translation and perspective transform.
  122.  
  123. So NURBs, Non-Uniform Rational B-splines, are non-uniform B-splines
  124. in homogeneous coordinates.  The "Rational" part refers to the
  125. division you do to get from homogeneous coordinates to ordinary
  126. three-space coordinates.  The first result of this is that you can
  127. put the control points of a NURB through a perspective transform
  128. and get a new NURB which is just what the orignal curve would look
  129. like from that same perspective.  This is no surprise, however,
  130. since to compute each point along the NURB you have to perform
  131. two divisions, which is just what you would have to do if you
  132. computed the curve in three-space and applied the perspective
  133. transform yourself.  This property is therefore of NO VALUE to
  134. the end user and is of only theoretic interest.
  135.  
  136. The other property is more interesting to end users.  Because of
  137. this additional division used to compute each point along the
  138. curve, it is possible to make NURBs which exactly fit circles and
  139. ellipses.  This makes NURBs of great interest for CAD/CAM and
  140. mechanical simulation applications.  For animators, however, the
  141. circles that can be made with generic B-splines, or even ordinary
  142. C1 splines, can be made so close to actual circles that no one
  143. could ever tell the difference.
  144.  
  145. In my opinion, NURBs are only interesting to the typical animator as
  146. a buzzword.  If you are truely more interested in the art than the
  147. technology, forget NURBs, they solve nothing for you.  B-splines, on
  148. the other hand are extremely interesting because of their very nice
  149. smoothness that results from being C2 continuous.  It's very probable
  150. you'll see B-splines in Modeler soon.  NURBs, probably never.
  151.  
  152.         - Stuart Ferguson
  153. --
  154. DrGandalf@cup.portal.com sent this message.
  155. To Post a Message           : lightwave@webcom.com
  156. Un/Subscription Requests To : lightwave-request@webcom.com
  157. (DIGEST)                 or : lightwave-digest-request@webcom.com
  158. Administrative Items To     : owner-lightwave@webcom.com